/**
 *
 */
package com.zhengtoon.mctoon.conv.service;

import com.qitoon.framework.core.exception.BusinessException;
import com.zhengtoon.mctoon.conv.bean.session.OrgSessionInfo;
import com.zhengtoon.mctoon.conv.dto.*;
import com.zhengtoon.mctoon.conv.dto.mybatis.Page;
import com.zhengtoon.mctoon.conv.dto.response.SubjectConvPhotoDto;
import com.zhengtoon.mctoon.conv.utils.SessionInfo;

import java.util.List;

/**
 * 随手拍Service接口
 *
 * @author 赵康峰
 * @version 2017-05-26
 *          Copyright: Copyright (c) 2017
 *          Company:北京政务通科技有限公司
 */
public interface ConvPhotoInfoService {

    /**
     * 提交随手拍记录对象
     *
     * @param releaseDto  随手拍记录对象
     * @param sessionInfo 会话信息
     * @return int
     * @author 赵康峰
     */
    int addPhotos(RequestReleaseDto releaseDto, SessionInfo sessionInfo) throws BusinessException;

    /**
     * 修改随手拍记录对象
     *
     * @param releaseDto  随手拍记录对象
     * @param sessionInfo 会话信息
     * @return int
     * @author 赵康峰
     */
    int updatePhotos(RequestReleaseDto releaseDto, SessionInfo sessionInfo) throws BusinessException;

    /**
     * 分页获取我的随手拍列表
     *
     * @param pageNum  页码数
     * @param pageSize 每页行数
     * @param userId   用户ID
     * @return java.util.List<com.zhengtoon.mctoon.conv.dto.ResultConvPhotoDto>
     * @author 赵康峰
     */
    List<ResultConvPhotoDto> queryPhotoList(String pageNum, String pageSize, String userId);

    /**
     * 获取随手拍详情
     *
     * @param id 随手拍记录id
     * @return com.zhengtoon.mctoon.conv.dto.ResultConvPhotoInfoDto
     * @author 赵康峰
     */
    ResultConvPhotoInfoDto queryPhotoDetailById(String id, String userId);

    /**
     * 随手拍处理反馈
     *
     * @param id           随手拍记录表id
     * @param userFeedBack 用户反馈
     * @return int
     * @author 赵康峰
     */
    int updateUserFeedBack(String id, int userFeedBack, String messge);


    /**
     * 待审核列表
     *
     * @param page 分页对象,包含请求参数
     * @return Page
     * @author 144637
     */
    Page queryPendingAuditList(Page page);


    /**
     * 待审核详情
     *
     * @param convId 记录id
     * @author 144637
     */
    PendingAuditDetailDto queryPendingAuditDetailById(Long convId);

    /**
     * 下一个未处理的详情（随机或锁）
     *
     * @param isAsc 是否正序
     * @author 144637
     */
    PendingAuditDetailDto queryPendingAuditDetailByNext(Integer isAsc);

    /**
     * 已办结列表
     *
     * @author 144637
     */
    AuditConfigDto auditConfig();

    /**
     * 审核随手拍
     *
     * @param addAuditDto    添加
     * @param orgSessionInfo 会话信息
     * @author 144637
     */
    boolean addAudit(AddAuditDto addAuditDto, OrgSessionInfo orgSessionInfo);

    /**
     * 举报列表
     *
     * @param page 入参分页对象
     * @return page
     * @author 144637
     */
    Page queryReportList(Page page);

    /**
     * 举报详情（id查询）
     *
     * @param convId 随手拍记录id
     * @param isEdit 是否是编辑页面
     * @author 144637
     */
    ReportDetailDto queryReportById(Long convId, Integer isEdit);

    /**
     * 处理举报
     *
     * @param addReportDto   添加对象
     * @param orgSessionInfo session信息
     * @author 144637
     */
    boolean addReport(AddReportDto addReportDto, OrgSessionInfo orgSessionInfo);

    /**
     * 已发布的随手拍列表
     *
     * @param page 入参分页对喜感
     * @return page
     * @author 144637
     */
    Page queryPublishedConvList(Page page);


    /**
     * 获取大赞北京,社会警示列表
     *
     * @param pageNum  页码数
     * @param pageSize 每页行数
     * @param userId   用户ID
     * @return java.util.List<com.zhengtoon.mctoon.conv.dto.ResultPraisConvPhotoDto>
     * @author 赵康峰
     */
    List<ResultPraisConvPhotoDto> queryPraisPhotoList(String pageNum, String pageSize, String userId, int typeCode);

    /**
     * 解锁记录
     *
     * @param convId 随手拍记录id
     * @return boolean
     * @author 144637
     */
    boolean unlockAuditRecord(Long convId);


    /**
     * 获取通知详情
     *
     * @param addReportDto 审核dto
     * @return String
     * @author 144637
     */
    String queryMsgContentBeforeAuditReport(AddReportDto addReportDto);

    /**
     * 分页获取问题处理列表
     *
     * @param pageNum  页码数
     * @param pageSize 每页行数
     * @return java.util.List<com.zhengtoon.mctoon.conv.dto.ResultProblemHandDto>
     * @author 赵康峰
     */
    List<ResultProblemHandDto> queryProblemHandList(String pageNum, String pageSize);

    /**
     * 已发布的随手拍详情
     *
     * @param id 随手拍id
     * @return PublishedConvDetailDto 随手拍详情dto
     * @author 144637
     */
    PublishedConvDetailDto queryPublishedConvDetailById(Long id);

    /**
     * 获取审核前通知详情
     *
     * @param addAuditDto 审核内容dto
     * @return String 消息内容
     * @author 144637
     */
    String queryMsgContentBeforeAudit(AddAuditDto addAuditDto);


    /**
     * 是否隐藏
     *
     * @param convId
     * @param showFlag
     * @return
     */
    Integer updShowFlag(Long convId, Integer showFlag);

    /**
     * 获取专题下的随手拍列表
     *
     * @param pageNum   当前页数
     * @param pageSize  每页数据条数
     * @param subjectId 专题id
     * @param userId    用户id
     * @return List<SubjectConvPhotoDto>
     * @author 144637
     */
    List<SubjectConvPhotoDto> getSubjectConvList(Integer pageNum, Integer pageSize, String subjectId, String userId);
}